﻿/**	@file		iris_builder.h
 *	@date		(2008-09-28 13:55:28)/(2010-02-17 11:45:59)
 *-----------------------------------------------------------------------------
 *	@version	1.1.2.2
 *	@author		Nick Shallery	(nicknide@gmail.com)
 *	@copyright	YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.
 *-----------------------------------------------------------------------------
**/

#if			!defined(__LXIRIS__IRIS__BUILDER__H__NICK__K_IN_G__)
#define		__LXIRIS__IRIS__BUILDER__H__NICK__K_IN_G__
//==============================================================================
//--------------------------------------------------------------------------

#if			!defined(__LOLIX__LOLIX_INSTANCE__K_IN_G__)
	#include	"../../lolix/lolix_inst.h"
#endif	//	!defined(__LOLIX__LOLIX_INSTANCE__K_IN_G__)

#if			!defined(__LOLIX__TOY__INVOKE_CAST__HPP__K_IN_G__)
	#include	"../../lolix/toy/invoke_cast.hpp"
#endif	//	!defined(__LOLIX__TOY__INVOKE_CAST__HPP__K_IN_G__)

namespace lolix{namespace pretty{
	class canvas_package;
}}

namespace lxiris{
class iris_builder;
class iris_button;
class iris_frame;
class iris_image;
struct iris_rect;

class LOLIX_NO_VTABLE iris_factory
	: public lolix::itf
{
public:
	LOLIX_DECLARE_ITF(lxiris::iris_factory, lolix::itf, (0xa6602404, 0x4a1e4bb6, 0xab8814c1, 0x67731d4e));
	LOLIX_INTERFACE(query_builder	, lolix::LOLIX_RETNV ,	(iris_builder** ir_bd, lolix::pretty::canvas_package* can));
};


class LOLIX_NO_VTABLE iris_builder
	: public lolix::itf
{
public:
	LOLIX_DECLARE_ITF(lxiris::iris_builder, lolix::itf, (0xd294cc92, 0xb6e546c2, 0xa871367e, 0x97bc863c));
	enum ENUM_IRIS_TYPE
	{	IRIS_TYPE_DEFAULT
	,	IRIS_TYPE_IMAGE
	};

	LOLIX_INTERFACE(query_iris_frame, lolix::LOLIX_RETNV ,	(iris_frame** out_ptr, iris_frame* pnt, iris_rect const* iris_rect));
	LOLIX_INTERFACE(query_iris_img	, lolix::LOLIX_RETNV ,	(iris_image** out_ptr, iris_frame* pnt, iris_rect const* iris_rect));
	LOLIX_INTERFACE(query_iris_btn	, lolix::LOLIX_RETNV ,	(iris_button** out_ptr, iris_frame* pnt, iris_rect const* iris_rect));
};

}



//--------------------------------------------------------------------------
//==============================================================================
#endif	//	!defined(__LXIRIS__IRIS__BUILDER__H__NICK__K_IN_G__)
